import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.LinkedList;
import java.util.HashSet;
import java.util.SortedSet;
import java.util.TreeSet;
import java.util.Set;
import java.util.HashMap;
public class JavaKE6 {
    public static void main(String[] args){

        Collection c=new ArrayList();
        c.add("Apple");
        c.add("Banana");
        c.add("Pear");
        c.add("Orange");

        ArrayList array=new ArrayList();
        array.add("Cat");
        array.add("Dog");

        System.out.println("集合c中的个数："+c.size());
        if (!array.isEmpty()){
            c.addAll(array);
        }
        System.out.println("集合c中的元素个数："+c.size());
        Iterator iterator=c.iterator();
        System.out.println("集合c中的元素：");
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
        System.out.println();
        if (c.contains("Cat")){
            System.out.println("---集合c中包含元素Cat---");
        }
        c.removeAll(array);
        iterator=c.iterator();
        System.out.println("集合c中元素：");
        while(iterator.hasNext()){
            System.out.println(iterator.next()+" ");
        }
        System.out.println();

        Object[] str=c.toArray();
        String s="";
        System.out.println("数组中元素：");
        for (int i=0;i< str.length;i++){
            s=(String) str[i];
            System.out.println(s+"");
        }


        ArrayList list=new ArrayList();
        list.add("A");
        list.add("B");
        list.add("C");
        list.add("D");
        list.add("C");
        System.out.println("---输出集合中的元素---");
        Iterator iterator1=list.iterator();
        while (iterator1.hasNext()){
            System.out.println(iterator1.next()+" ");
        }
        System.out.println();
        System.out.println("返回替换集合中索引是1的元素："+list.set(1,"a"));
        iterator1= list.iterator();
        System.out.println("---集合替换后集合中的元素---");
        while (iterator1.hasNext()){
            System.out.println(iterator1.next()+" ");
        }
        System.out.println();
        System.out.println("获取集合中索引是2的元素："+list.get(2));
        System.out.println("集合中第一次出现C的索引："+list.indexOf("C"));
        System.out.println("集合中最后一次出现B的索引："+list.lastIndexOf("B"));
        List list1=list.subList(0,4);
        iterator=list1.iterator();
        System.out.println("---新集合中的元素---");
        while (iterator.hasNext()){
            System.out.println(iterator.next()+" ");
        }


        LinkedList listk=new LinkedList();
        listk.add("100");
        listk.add("101");
        listk.add("102");
        listk.add("103");
        listk.addLast("104");
        listk.addFirst("99");
        System.out.println("---输出集合中的元素---");
        Iterator iteratork=listk.iterator();
        while (iteratork.hasNext()){
            System.out.println(iteratork.next()+" ");
        }
        System.out.println();
        System.out.println("获取集合的第一个元素："+listk.getFirst());
        System.out.println("获取集合的最后一个元素："+listk.getLast());
        System.out.println("删除集合的第一个元素："+listk.removeFirst());
        System.out.println("删除集合的最后一个元素："+listk.removeLast());
        System.out.println("---删除元素后的集合---");
        iteratork=listk.iterator();
        while (iteratork.hasNext()){
            System.out.println(iteratork.next()+" ");
        }


        HashSet hash=new HashSet();
        hash.add("56");
        hash.add("32");
        hash.add("50");
        hash.add("48");
        hash.add("48");
        hash.add("23");
        System.out.println("集合元素个数："+hash.size());
        Iterator iter=hash.iterator();
        while (iter.hasNext()){
            System.out.println(iter.next()+" ");
        }


        TreeSet tree=new TreeSet();
        tree.add("45");
        tree.add("32");
        tree.add("68");
        tree.add("12");
        tree.add("20");
        tree.add("80");
        tree.add("75");
        System.out.println("集合元素个数"+tree.size());
        System.out.println("---集合中的元素---");
        Iterator listt=tree.iterator();
        while (listt.hasNext()){
            System.out.println(listt.next()+" ");
        }
        System.out.println();
        System.out.println("---集合中20~68的元素---");
        SortedSet listt2=tree.subSet("20","68");
        iter=listt2.iterator();
        while (iter.hasNext()){
            System.out.println(iter.next()+" ");
        }
        System.out.println();
        System.out.println("---集合中45之前的元素---");
        SortedSet s1=tree.headSet("45");//s1是tree的视图
        /*
        多态性允许通过接口类型的变量引用任何实现了该接口的对象，
       在运行时，Java虚拟机会根据实际引用的对象类型来调用对应的方法实现，而不是根据声明的接口类型。
         */
        iter=s1.iterator();
        while (iter.hasNext()){
            System.out.println(iter.next()+" ");
        }
        System.out.println();
        System.out.println("---集合中45之后的元素---");
        SortedSet s2=tree.tailSet("45");
        iter=s2.iterator();
        while (iter.hasNext()){
            System.out.println(iter.next()+" ");
        }
        System.out.println();
        System.out.println("集合中第一个元素："+tree.first());
        System.out.println("集合中最后一个元素："+tree.last());
        System.out.println("获取并移出集合中第一个元素："+tree.pollFirst());
        System.out.println("获取并移出集合中最后一个元素："+tree.pollLast());
        System.out.println("---集合中的元素---");
        iter=tree.iterator();
        while (iter.hasNext()){
            System.out.println(iter.next()+" ");
        }
        System.out.println();


        HashMap map=new HashMap();
        map.put("101","九江学院");
        map.put("102","计算机与大数据学院");
        map.put("103","软件工程");
        map.put("104","A2351");
        map.put("105","学号");
        map.put("106","姓名");
        System.out.println("指定键102获取值："+map.get("102"));
        Set map1=map.keySet();//获取HashMap集合中的键
        Iterator iterator3=map1.iterator();
        //获取Hashmap中值的集合并输出
        String key="";
        while (iterator3.hasNext()){
            key=(String) iterator3.next();
            System.out.println(key+":"+map.get(key));
        }
    }
}
